package com.example.cexceptios;

/**
 * 检查型异常(受检异常)
 * 自定义异常类RunsException，用于表示运行过程中的异常情况
 * 它没有提供额外的方法或字段，直接继承自Exception类
 * 主要用于特定场景下，当运行出现错误时抛出，以便于错误追踪和处理
 */
public class RunsException extends Exception {
    /**
     * 自定义校验异常类，继承自Exception
     * 用于在校验业务逻辑时抛出特定的异常，可包含错误码和错误信息
     */
    private String errorCode; // 错误码，用于标识特定的错误类型

    /**
     * 默认构造函数，无参数
     */
    public RunsException() {
        super();
    }

    /**
     * 构造函数，接受一个字符串参数作为异常消息
     *
     * @param message 异常的消息
     */
    public RunsException(String message) {
        super(message);
    }

    /**
     * 构造函数，接受一个Throwable对象作为异常的原因
     *
     * @param cause 异常的原因
     */
    public RunsException(Throwable cause) {
        super(cause);
    }

    /**
     * 构造函数，接受一个字符串参数作为异常消息和一个Throwable对象作为异常的原因
     *
     * @param message 异常的消息
     * @param cause   异常的原因
     */
    public RunsException(String message, Throwable cause) {
        super(message, cause);
    }

    /**
     * 构造函数，接受一个错误代码和一个字符串参数作为异常消息
     *
     * @param errorCode 错误代码
     * @param message   异常的消息
     */
    public RunsException(String errorCode, String message) {
        super(message);
        this.errorCode = errorCode;
    }

    /**
     * 构造函数，接受一个字符串参数作为异常消息，一个Throwable对象作为异常的原因，
     * 以及两个布尔值参数分别表示是否启用异常的抑制和是否写入异常的堆栈跟踪
     *
     * @param message            异常的消息
     * @param cause              异常的原因
     * @param enableSuppression  是否启用异常的抑制
     * @param writableStackTrace 是否写入异常的堆栈跟踪
     */
    public RunsException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }

    /**
     * 构造函数，接受一个错误代码，一个字符串参数作为异常消息，和一个Throwable对象作为异常的原因
     *
     * @param errorCode 错误代码
     * @param message   异常的消息
     * @param cause     异常的原因
     */
    public RunsException(String errorCode, String message, Throwable cause) {
        super(message, cause);
        this.errorCode = errorCode;
    }


}


